﻿
CREATE PROC dbo.spCancelaRecibo
	@pnIdRecibo			INT,
	@pnIdLaboratorio	INT,
	@pnIdSucursal		INT,
	@psIpMod			VARCHAR(15),
	@pnIdUsuarioMod		INT
AS
BEGIN
	SET NOCOUNT OFF;
	
	IF NOT EXISTS (SELECT 1 FROM dbo.Recibo WHERE IdLaboratorio = @pnIdLaboratorio AND IdSucursal = @pnIdSucursal AND IdRecibo = @pnIdRecibo
		AND IdEstatus in (1,2) )
	BEGIN
		RAISERROR('El recibo no puede ser cancelado, verifique que los estudios no hayan sido realizados o que este cancelado.',16,1)	
	END
	
	UPDATE	r
	SET		r.IdEstatus	= 4, -- Cancelado
			r.FechaMod		= GETDATE(),
			r.IpMod			= @psIpMod,
			r.IdUsuarioMod	= @pnIdUsuarioMod
	FROM	dbo.Recibo		r
	WHERE	r.IdRecibo		= @pnIdRecibo
	AND		r.IdLaboratorio = @pnIdLaboratorio
	AND		r.IdSucursal	= @pnIdSucursal
	
	SET NOCOUNT ON;
END